﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Business_Entity;
using Business_Logic;

namespace PetSoft.GUI.Configuracion
{
    public partial class GUIBuscarTienda : Form
    {


        private BLTienda tiendaBL;



        private List<BEEstadoTienda> estadoTiendaLST;/*Para mostrar los estados de la tienda*/

        public List<BEEstadoTienda> EstadoTiendaLST
        {
            get { return estadoTiendaLST; }
        }



        private List<BETipoServicio> tipoServicioLST;

        public List<BETipoServicio> TipoServicioLST
        {
            get { return tipoServicioLST; }
        }


        private List<BEServicio> servicioLST;

        public List<BEServicio> ServicioLST
        {
            get { return servicioLST; }
        }





        private List<BETienda> tiendaLST;

        public List<BETienda> TiendaLST
        {
          get { return tiendaLST; }
          set { tiendaLST = value; }
        }

       






        public GUIBuscarTienda()
        {
            InitializeComponent();
            this.respuestaLBL.Hide();
            this.tiendaBL = new BLTienda();
            this.idTiendaTB.KeyPress += new KeyPressEventHandler(Utils.SoloNumerosTB);
            this.nombTiendaTB.KeyPress += new KeyPressEventHandler(Utils.NoCaracteresRarosTB);
            this.tiendaDGV.CellMouseDoubleClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.tiendaDGV_CellMouseDoubleClick);
        }

        
        
        
        
        
        
        
        private void buscarBTN_Click(object sender, EventArgs e)
        {
            this.tiendaDGV.Rows.Clear();
            BETienda tiendaBE = new BETienda();
            if (!this.idTiendaTB.Text.Equals(""))
            {
                tiendaBE.Id = Int32.Parse(this.idTiendaTB.Text);
            }
            else tiendaBE.Id = -1;
            tiendaBE.IdAdministrador = this.idAdminTB.Text;
            tiendaBE.Nombre = this.nombTiendaTB.Text;
            tiendaBE.Administrador = this.idAdminTB.Text;
            if (this.esPrincipalCHB.Checked == true) tiendaBE.EsPrincipal = true;
            List<BETienda> tiendaLST = this.tiendaBL.buscar(tiendaBE);
            /*Lleno el DataGridView*/
            for (int i = 0; i < tiendaLST.Count; ++i)
            {
                object[] fila = new object[] { false, tiendaLST[i].Id, tiendaLST[i].Nombre, tiendaLST[i].NombAdmin, tiendaLST[i].Direccion };
                this.tiendaDGV.Rows.Add(fila);

            }
            string respuesta;
            if (tiendaLST.Count == 0)
            {
                respuesta = "Ninguna tienda se ha encontrado.";
            }
            else if (tiendaLST.Count == 1)
            {
                respuesta = "Se ha encontrado 1 tienda .";
            }
            else
            {
                respuesta = "Se han encontrado " + tiendaLST.Count.ToString() + " tiendas.";
            }
            this.respuestaLBL.Text = respuesta;
            this.respuestaLBL.Show();
        }

        
        
        
        
        
        
        
        private void limpiarBTN_Click(object sender, EventArgs e)
        {
            this.idTiendaTB.Clear();
            this.nombTiendaTB.Clear();
            this.idAdminTB.Clear();
            this.adminTB.Clear();
            this.tiendaDGV.Rows.Clear();
            this.esPrincipalCHB.Checked = false;
            this.respuestaLBL.Hide();
        }

        
        
        
        
        
        
        
        private void verBTN_Click(object sender, EventArgs e)
        {
            int cont = 0;
            BETienda tiendaBE = new BETienda();
            for (int i = 0; i < this.tiendaDGV.Rows.Count; ++i)
            {
                if (Convert.ToBoolean(this.tiendaDGV[0, i].Value) == true)
                {
                    ++cont;
                    tiendaBE.Id = Convert.ToInt32(this.tiendaDGV[1, i].Value);
                }

            }
            if (cont == 1)
            {
                this.tiendaBL.TiendaBE = tiendaBE;
                GUITienda_Ver_Edit tienda_Ver_EditGUI = new GUITienda_Ver_Edit('v', this.tiendaBL);
                tienda_Ver_EditGUI.ShowDialog();
            }
            else if (cont > 1)
            {
                MessageBox.Show("Ha seleccionado más de 1 tienda. Solo debe marcar 1 tienda", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        
        
        
        
        
        
        
        private void cancelarBTN_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        
        
        
        
        
        
        
        private void aceptarBTN_Click(object sender, EventArgs e)
        {
            BETienda tiendaBE = new BETienda();
            for (int i = 0; i < this.tiendaDGV.Rows.Count; ++i)
            {
                if (Convert.ToBoolean(this.tiendaDGV[0, i].Value) == true)
                {
                    tiendaBE.Id = Convert.ToInt32(this.tiendaDGV[1, i].Value);
                    this.tiendaBL.TiendaBE = tiendaBE;
                    this.tiendaBL.cargarTienda();
                    this.tiendaBL.cargarServicio_X_Tienda();
                    tiendaBE= this.tiendaBL.TiendaBE;
                    tiendaBE.ServicioXtiendaLST=this.tiendaBL.ServicioXtiendaLST;
                    this.tiendaLST.Add(tiendaBE);
                }

            }

                
            this.estadoTiendaLST = this.tiendaBL.EstadoTiendaLST;
            this.tipoServicioLST = this.tiendaBL.TipoServicioLST;
            this.servicioLST = this.tiendaBL.ServicioLST;

            this.Close();
        }

        
        
        
        
        
        
        
        private void buscarAdminBTN_Click(object sender, EventArgs e)
        {
            GUIBuscarEmpleado buscarEmpleadoGUI = new GUIBuscarEmpleado(this.tiendaBL);
            buscarEmpleadoGUI.ShowDialog();
            if (buscarEmpleadoGUI.Acepto == true)
            {
                this.idAdminTB.Text = buscarEmpleadoGUI.IdEmpleado;
                this.adminTB.Text = buscarEmpleadoGUI.Empleado;
            }
        }







        void tiendaDGV_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            this.tiendaDGV.Rows[e.RowIndex].Cells["SeleccionarCBC"].Value = !((Boolean)this.tiendaDGV.Rows[e.RowIndex].Cells["SeleccionarCBC"].Value);
        }
            
        
        
        void SelCBCOLCheckedChanged(object sender, EventArgs e)
        {
        	for(int i=0; i<this.tiendaDGV.RowCount; i++){
        		this.tiendaDGV[0, i].Value = this.selCBCOL.Checked;
				//list[0, i].Value = ((CheckBox) list.Controls.Find("checkboxHeader", true)[0]).Checked;    		
        	}
        }
    }
}
